package com.tbvtc.agriculturalcreditchainserver2025.service;

//import com.github.pagehelper.PageInfo;
import com.tbvtc.agriculturalcreditchainserver2025.dto.Cart.*;
import com.tbvtc.agriculturalcreditchainserver2025.dto.consumer.addCartDto;
import com.tbvtc.agriculturalcreditchainserver2025.pojo.ResultPage;
import com.tbvtc.agriculturalcreditchainserver2025.vo.Cart.*;
import com.tbvtc.agriculturalcreditchainserver2025.vo.ConsumerVo.addCartVo;

import java.util.List;

public interface CartService {
    addCartVo addCart(addCartDto addCartDto);

    Integer updateCartNum(Integer count1, Integer id);
    void addCartNum(Integer id);
    void addAddress(cartAddressDto cartAddressDto);

    void clearCart(Integer userId);

    cartIdAndPriceVo settlementCart(SettlementCartDto settlementCartDto);

    void removeCart(Integer cartId);



    ResultPage<GroupData>   findOrderById(UserOrderLimitDot userOrderLimitDot);

    void pay(SettlementCartDto settlementCartDto);

    List<CartSelectUserByUserId> UserfindUserOrderById(Integer userId,Integer state);



    void cancelPayCart(SettlementCartDto settlementCartDto);

    void payOrder(String orderId);

    void updateUserAddressSetNonDefault(Integer addressId);

    List<addressItem> selectAddressByUserId(Integer userId);

    GroupedData findOrderByOrderId(String orderId);

    void deleteAddress(Integer addressId);

    void updateAddress(CartUpdataAddressDto cartUpdataAddressDto);

    void confirmDelivery(String orderId,String logisticsInfo,String expressCompany);

    Long findOrderTime(String orderId);


    List<CartInfoDto> getCartInfo(Integer userId);



}
